In recent years, with the fast development of computer and network technologies, browser-based applications, generally also referred to as Web applications, are widely developed to satisfy various enterprise and personal requirements.
With the rapid increase of various applications used inside enterprises, especially with the popularity of the Internet and XML technologies, while more and more enterprises are converting their own business into the E-Commerce, they find that an isolated information system cannot effectively provide comprehensive information across departments and systems and cannot accomplish real time information access and see-through business flows. A business flow of an enterprise may involve multiple application systems at the same time, therefore, it is required that these systems should cooperate with each other. However, inconsistency of interfaces and architectures often causes application systems that should be tightly integrated together to become one or more “Information Isolated Islands”. Thus, an Enterprise Application Integration (EAI) technology emerges as the times require. The EAI technology can connect various business-related heterogeneous systems, applications and data sources inside/outside an enterprise by using a middleware as a “bus” to connect various existing isolated applications to the bus, like various components of a personal computer (PC), to form an integrated enterprise business system for seamlessly sharing and exchanging data between important systems, such as the E-Commerce, Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), Supply Chain Management (SCM), Office Automation (OA), Enterprise Information System (EIS), Database, Data Ware, etc.
For example, an employee in a company usually uses multiple Web applications in his daily work, which may be provided by different providers distributed over the Internet and Intranet. Moreover, in many cases, one or more applications are related to the company's regulations or business processes. To be compliant with the company's regulations or business processes, during the interaction of the employee in the company with the Web applications, these applications should be correlated with each other through Web events. For example, an order generation process may involve both a CRM application and an ERP application; a part of the process instance should be streamlining Web events of the CRM application and the ERP application. In summary, the Web events which occurred within the company should be correlated and analyzed so as to be compliant with the company's regulations or business processes. The Web events should be captured first before they can be correlated. One method of capturing the Web events is to add event monitoring capability into corresponding HTML Web pages. This is an intrusive method, since original Web pages need to be revised adaptively. However, in the general cases described above, those applications are out of the control of the company and the Web pages cannot be revised by the company.
In addition, there exists a proxy-based method which enables non-intrusive revision of the Web pages and has been widely used. The basic concept of the proxy-based method is to revise some codes in an original HTML DOM (Document Object Model) tree or add some codes thereto when a Web page is being accessed via a proxy server. To capture a Web event, the proxy-based method will add an event monitoring function into the Web page and, when an event occurs during the user's interaction, will send the event to the proxy server. The shortcoming of this method lies in the fact that the proxy server needs to parse and revise the HTML Web page whenever the Web page is accessed, which will degrade the Internet accessing performance.
Another important issue herein is how to specify correlation relationships among these Web applications and how to identify correlation patterns among them given that a series of Web events have been captured. A correlation pattern typically represents a certain business regulation or business process. The above issue has not been addressed in the prior art.
In the prior art, existing Web application event capture/generation solutions can be categorized into two types of methods: the first type which uses Polling Services to monitor the Web application events, and the second type which uses Web page UI (User Interface) event registration through code injection. Both of these two types of methods have shortcomings, and are inefficient, costly, or both.
Taking the first type of method, i.e. polling services as an example, in usual cases, Web application ISVs (Independent Software Venders) provide Web services for accessing a data center so that customers can use APIs (Application Programming Interfaces) to synchronize different systems. One of such methods is used to leverage scheduling services (i.e., perform polling), e.g., per hour or at 12:00 pm every day, to synchronize data of two or more systems. Although Web service is a better method for synchronizing information of Web applications with the EIS, this method also has obvious drawbacks. For example, the system cannot know when to poll; many Web applications even do not provide Web service interfaces; and if scheduling time slices are set to be small, then the load of the whole system will be tremendous. In the alternative, implementing inconsistent time slices will be useless.
The second type of method is more efficient than the first type of method. For example, each of the U.S. Pat. No. 6,944,660 and U.S. Pat. No. 6,442,563 and the US Patent Application Publication No. US2002/0165954A1 has disclosed a browser-based UI event triggering method which collects browser-based information to trigger workflow actions or to trigger monitoring of these actions by using Web page events. However, the methods described in the above patents and patent publications are based on injecting script tags into the Web pages. Accordingly, the aforementioned methods need to make intrusive modifications to the Web pages or make intrusive redesigns of the Web pages. However, in most cases, the Web application providers do not provide the Web page modification capability at all. In other words, code injection is an ad-hoc way and not easy to be generalized as a uniform methodology.
It can be seen that, in the prior art, there is no efficient and economic systematic method which can solve the problems of how to specify the correlation relationships among the Web applications and of how to identify the correlation patterns in the cases where a series of Web events have been captured.